Color quantization based on desired upper bound for relative quantization step

ABSTRACT

A computer system ( 810 ) receives a desired upper bound δ Smax  for a relative quantization step ∥S′−S″∥/∥S′∥ to be used when quantizing any color in some range of colors. Here S′ and S″ are adjacent colors in the set of colors to be made available for the quantized image, and ∥•∥ is a norm in a 70%-orthonormal linear color coordinate system, the norm being the square root of the sum of squares of the tristimulus values. The computer system determines ( 510 ) suitable quantization steps for the brightness coordinate (B) and the chromatic coordinates (e,ƒ) in a non-linear color coordinate system, and quantizes ( 520 ) the brightness and chromatic coordinates accordingly.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 11/870,904, filed on Oct. 11, 2007, incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to digital image processing involving quantization of digital representations of color images.

Quantization involves reducing the set of colors available for image representation in order to reduce the size of the image data. Quantization errors should preferably be small so that image distortion would be imperceptible to a human observer. Hence, any two adjacent colors in the reduced set of colors should be indistinguishable to a human. At the same time, the reduced set of colors should itself be small in order to allow significant reduction in the image data size. These conflicting goals can be hard to balance if the quantization method must be suitable for a large gamut, e.g. the entire visible gamut (to be able to accommodate high dynamic range (HDR) images for example).

Each color can be represented by its coordinates in a color coordinate system (CCS), and each coordinate can be quantized separately. For this purpose, a reduced set of values can be defined for each coordinate. The color coordinate system can be chosen to provide luminance/chrominance separation, e.g. one coordinate for the luminance and two for the chrominance, with a larger reduced set for the luminance to accommodate high human sensitivity to luminance distortion.

The quantized image can be coded in a floating point format (with separate representation of the mantissa and the fraction) or an integer format. The integer format is preferred in those cases in which the quantized data is subjected to further processing involving arithmetic and/or logic operations because on many computers such operations are faster if the operands are in integer format.

An exemplary quantization method is described in Gregory Ward Larson, “The LogLuv Encoding for Full Gamut, High Dynamic Range Images”, Silicon Graphics, Inc. Mountain View, Calif. That method quantizes colors defined in either the CIE XYZ color coordinate system (“CCS”) or its derivative system xyY. The colors are quantized into 32-bit values, and we will refer to this method as LogLuv32. The luminance component Y is quantized into the following value:

L _(e)=└256(log₂ Y+64)┘  (1)

The function └•┘ is the floor, i.e. └x┘ is the largest integer not exceeding x. L_(e) is coded as a 16-bit integer, with one bit for the sign and 15 bits for the magnitude. This logarithmic coding provides a constant or almost constant upper bound for the relative error ΔY/Y. The relative error is a good representation of the human ability to perceive luminance distortion. The upper bound for the relative error should be uniform (constant), and as large as possible, for effective reduction of the size of image data. According to the “LogLuv encoding” article cited above, the maximum error in quantization (1) is 0.27% (i.e. 0.0027) over the entire visible gamut.

For each color, the LogLuv32 method quantizes the color's chrominance coordinates x, y into a pair of 8-bit integer values u_(e), v_(e) as follows:

u _(e)=└410u′┘  (2)

v _(e)=└410v′┘

where

u′=4x/(−2x+12y+3)  (3)

v′=9y/(−2x+12y+3)

Another quantization method for HDR images is described in Rafal Mantiuk, Karol Myszkowski, Hans-Peter Seidel, “Lossy Compression of High Dynamic Range Images and Video”, Proceedings of SPIE, Volume 6057 (2006). This method quantizes the chromatic coordinates as in (2), and quantizes the physical luminance y into a 12-bit value l(y) as follows (the physical luminance y is not the same y as in the xyY system):

$\begin{matrix} {{l(y)} = \left\{ \begin{matrix} {{{a \cdot y}\mspace{14mu} {if}\mspace{14mu} y} < y_{l}} \\ {{{b \cdot y^{c}} + {d\mspace{14mu} {if}\mspace{14mu} y_{l}}} \leq y < y_{h}} \\ {{{e \cdot {\log (y)}}\mspace{14mu} {if}\mspace{14mu} y} \geq y_{h}} \end{matrix} \right.} & (4) \end{matrix}$

Here a, b, c, e, y_(l), y_(h) are positive constants, d and ƒ are negative constants. Choosing non-logarithmic quantization for lower values of the physical luminance y in (4) is based on studies of human visual perception as described in the “Lossy Compression” article.

SUMMARY

This section summarizes some features of the invention. Other features are described in the subsequent sections. The invention is defined by the appended claims, which are incorporated into this section by reference.

It is clear that human perception of color distortion depends not only on the luminance errors but also on the chrominance errors. The inventors use a new measure of color distortion which takes into account both luminance and chrominance errors. Some embodiments of the present invention provide quantization techniques developed by the inventors based on the new measure of color distortion. In some embodiments, a human user or some other entity can specify a desired upper bound for a relative quantization step, wherein the relative quantization step is a measure of the difference between adjacent colors in the reduced set of colors available for the quantized image. The relative quantization step is defined in terms of the new measure of the color distortion. The system provides a quantized image in which the maximum relative quantization step may at least approximately match the specified upper bound. Hence, a controlled trade-off is provided between the image distortion and the size of the image data. In some embodiments, the quantization methods cover the entire visible gamut.

The invention is not limited to the features and advantages described above. Other features are described below. The invention is defined by the appended claims, which are incorporated into this section by reference.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a geometric illustration of an orthonormal color coordinate system DEF2 and its derivative CCS Beƒ.

FIG. 2 is a geometric illustration of regions each of which is mapped into a single color when each DEF2 coordinate D, E, F is quantized separately.

FIG. 3 is another geometric illustration of such regions.

FIG. 4 is a geometric illustration of estimating a relative quantization step in Beƒ.

FIG. 5 is a flowchart of a quantization operation according to some embodiments of the present invention.

FIG. 6 illustrates a format for a quantized digital image according to some embodiments of the present invention.

FIG. 7 is a flowchart of decoding quantized data to obtain color coordinates of a quantized image according to some embodiments of the present invention.

FIG. 8 is a block diagram of a computer system suitable for performing quantization coding and/or decoding according to some embodiments of the present invention.

DESCRIPTION OF SOME EMBODIMENTS

The embodiments described in this section illustrate but do not limit the invention. The invention is defined by the appended claims.

In order to characterize a quantization method both with respect to the luminance and with respect to the chrominance, the inventors use a metric in an orthonormal color coordinate system. Orthonormal CCS's are defined in U.S. patent application Ser. No. 11/494,393 filed Jul. 26, 2006 by S. Bezryadin (who is also one of the inventors herein), published as no. 2007/0154083 A1 on Jul. 5, 2007, incorporated herein by reference (now U.S. Pat. No. 7,639,396, issued Dec. 29, 2009). The orthonormal CCS's are also described Appendix A hereinbelow. In particular, some embodiments use the DEF2 CCS described in Appendix A (this CCS is denoted as DEF in the aforementioned patent application 2007/0154083; “2” in DEF2 denotes the 2° field of the underlying XYZ CCS). See also the inventors' presentations entitled “Local Criterion of Quality for Color Difference Formula” and “Color Coordinate System for Accurate Color Image Editing Software”, incorporated herein by reference. Both presentations were made at the International Conference on Printing Technology held in St. Petersburg, Russia on Jun. 26-30, 2006 and are available at the web site of KWE International, Inc. of San Francisco, Calif. at the following respective addresses: http://www.kweii.com/site/color_theory/2006_SPb/lc/lc.pdf http://www.kweii.com/site/color_theory/2006_SPb/ccs/ccs.pdf Suppose that a color S is replaced with a color S′ in quantization. The colors available for a quantized image will be called Q-colors herein. Let ΔS=S′−S denote the difference between the original color S and the corresponding Q-color S′. The difference can be defined in terms of tristimulus values in a linear CCS. For example, in DEF2, if S=(D, E, F) and S′=(D′, E,′ F′), then ΔS=(D′−D, E′−E, F′−F).

ΔS may alternatively be set to S−S′.

The color distortion measure used by the inventors is the ratio

δS=∥ΔS∥/∥S∥  (5)

where the operator ∥•∥ represents the Euclidian (Pythagorean) norm in DEF2:

∥S∥=√{square root over (D ² +E ² +F ²)}  (6)

Using the measure (5), the inventors analyzed the indistinguishability data described in Wyszecki & Stiles, “Color Science; Concepts and Methods, Quantitative Data and Formulae” (2nd Ed. 2000), section 5.4 (pages 306-330; 793-803), incorporated herein by reference. For a color S, the corresponding indistinguishability region is the set of all colors indistinguishable from S to a human observer. As described in the Color Science reference, studies by Brown, MacAdam, Wiszecki and Fielder have indicated that in the CIE XYZ CCS, each indistinguishability region can be represented as an ellipsoid with a center at S. Since the DEF2 CCS is a linear transformation of the XYZ CCS, each indistinguishability region is an ellipsoid in DEF2.

For a number of such ellipsoids, the ellipsoids' geometry parameters in the XYZ CCS are specified in the Color Science reference, Table I(5.4.3), pages 801-803. Using these geometry parameters, the inventors calculated the lengths of the ellipsoids' shortest axes in DEF2. Let a_(DEF)(S) denote the length of the shortest axis of the DEF2 ellipsoid centered at S. The value a_(DEF)(S) is thus the diameter of the ball inscribed into the ellipsoid. Clearly, the inscribed ball consists of all colors S′ such that

ΔS=∥S′−S∥≦a _(DEF)(S)/2  (7)

The inventors have discovered that for all the ellipsoids in Table I(5.4.3),

a _(DEF)(S)/∥S∥≧0.01  (8)

Therefore, if

δS=∥S′−S∥/∥S∥≦0.005  (9)

then S′ lies within the ellipsoid centered at S, and hence S′ and S are indistinguishable.

Let us suppose that each DEF2 coordinate D, E, F is quantized linearly with a quantization step d. Then the color space can be partitioned into cubes 210 (FIG. 2) of side d. The colors in each cube 210 are mapped into the cube's center, i.e. are replaced with the cube's center in the quantized image. Each cube 210 will be called a Q-region herein. More generally, a Q-region is the set of all colors mapped into a single Q-color in quantization. Each cube 210 has 26 adjacent cubes. FIG. 2 shows some of the cubes adjacent to a cube 210.0. FIG. 2 does not show the nine cubes immediately in front of cube 210.0. FIG. 3 illustrates a block of the 27 cubes which includes the cube 210.0 at the center and also includes the 26 cubes adjacent to cube 210.0. In order to avoid generation of artifacts during quantization, the centers of all the 27 cubes should lie in a single ellipsoid. This condition is satisfied if the distance between the center of cube 210.0 and the center of any other one of the cubes does not exceed a_(DEF)(S₀)/2 where S₀ is the center of cube 210.0.

Clearly, the distance between the centers of cube 210.0 and an adjacent cube is the greatest for the eight cubes positioned diagonally with respect to cube 210.0, including cubes 210.1, 210.2. Each of the eight cubes shares only a vertex with cube 210.0. The distance between the centers of cube 210.0 and any one of the eight cubes is d·√{square root over (3)}. Therefore, the following is a sufficient condition for the centers of all the 27 cubes to lie in the ellipsoid centered at S₀:

d·√{square root over (3)}≦a _(DEF)(S ₀)/2  (10)

If the coordinates D, E, F are quantized with respective different quantization steps, the condition (10) is sufficient for indistinguishability if d is the largest quantization step.

The inequality (8) provides a lower bound for a_(DEF)(S₀) as 0.01·∥S₀∥, and hence (10) is satisfied if d·2√{square root over (3)} does not exceed that bound, or equivalently if

d/∥S ₀∥≦0.01/2√{square root over (3)}≈0.003  (11)

DEF2 does not provide luminance/chrominance separation. The Beƒ CCS described in Appendix A and FIG. 1 does provide luminance/chrominance separation. The quantization step d in the E and F coordinates (FIG. 2) corresponds to step d/B in the chromatic coordinates e=E/B, ƒ=F/B. Let us denote the quantization steps in e and ƒ as d_(e) and d_(ƒ) respectively, and assume for simplicity that d_(e)=d_(ƒ) Denoting this common value as d_(eƒ), we obtain from (11):

d _(eƒ) =d/∥S ₀∥≦0.01/2√{square root over (3)}≈0.003  (12)

The estimate (12) provides heuristic guidance in the choice of d_(eƒ), but this estimate was obtained based on the (11) computation for DEF2, not Beƒ, i.e. for separate quantization of the D coordinate, not the B coordinate. In particular, the Q-regions in Beƒ are not cubes. The DEF2 analysis will now be carried over to Beƒ to derive estimates for the Beƒ quantization steps d_(e), d_(ƒ) and δB=|B′−B|/|B| (the relative step for the brightness).

In FIG. 2, suppose S₀ (the center of cube 210.0) has DEF2 coordinates (D₀, E₀, F₀). Then the set of the 27 Q-colors at the centers of the 27 Q-regions 210 can be described as (D₀, E₀, F₀), (D₀±d, E₀, F₀), (D₀, E₀±d, F₀), etc. This set is thus the set of all colors (D, E, F) such that:

-   -   D can be any one of D₀, D₀+d, D₀−d;     -   E can be any one of E₀, E₀+d, E₀−d; and     -   F can be any one of F₀, F₀+d, F₀−d.         In other words, the centers of the 27 Q-regions 210 are the         following set:

{(D,E,F):Dε{D ₀ ,D ₀ +d,D ₀ −d};

Eε{E ₀ ,E ₀ +d,E ₀ −d};

Fε{F ₀ ,F ₀ +d,F ₀ −d}}  (13)

Each cube can be defined as the set of all the colors (D, E, F) such that each coordinate D, E, F is in some interval. For example, cube 210.0 is the following set:

{(D,E,F):Dε(D ₀ −d/2,D ₀ +d/2);

Eε(E ₀ −d/2,E ₀ +d/2);

Fε(F ₀ −d/2,F ₀ +d/2)}  (14)

Each interval may or may not include its end points, and will typically include one of the end points; for example, (D₀−d/2,D₀+d/2) can be replaced with (D₀−d/2,D₀+d/2]. Each end point, e.g.

D=D ₀ d/2  (15)

defines a plane containing the cube's edge.

Similar analysis will now be performed for Beƒ. Each coordinate B, e, ƒ can be quantized separately. The B coordinate can be quantized into one of values {B_(i)} where i is some index. Similarly, each of the e and ƒ coordinates can be quantized respectively into one of values {e_(j)} or {ƒ_(k)} where j and k are indices. Thus, the Q-colors are the colors (B_(i), e_(j), ƒ_(k)). The indices i, j, k can be in any set. We will assume for the sake of illustration that i, j, k are integers, and that increasing indices correspond to increasing coordinates, i.e.

. . . B _(i−1) <B _(i) <B _(i+1)< . . .

. . . e _(j−1) <e _(j) <e _(j+1)< . . .

. . . ƒ_(k−1)<ƒ_(k)<ƒ_(k+1)< . . .

By analogy with (14), for each Q-color (B_(i), e_(j), ƒ_(k)), the corresponding Q-region is the set of all the colors (B, e, ƒ) such that each of B, e, ƒ is in some interval containing the respective value B_(i), e_(j), or ƒ_(k), (such interval is called a neighborhood of B_(i), e_(j), or ƒ_(k)). By analogy with (15), the Q-region's boundaries are surfaces defined by one of the coordinates being a constant equal to an end point of the corresponding interval, i.e. B=const., e=const. or ƒ=const.

For any constant a>0, the equation B=a defines a sphere 410 (FIG. 4) of radius a and the center at the origin O of the DEF2 coordinate system. Therefore, a neighborhood of B_(i) corresponds to a spherical shell including the sphere B=B_(i). The equation e=a defines a circular conical surface about the E axis with the vertex at the origin O. Therefore, a neighborhood of e_(j) corresponds to a conical shell. Similarly a neighborhood of ƒ_(k) corresponds to a conical shell about the F axis. The Q-region for the point (B_(i), e_(j), ƒ_(k)) is therefore the intersection of the spherical shell for B_(i) with the conical shells for e_(j) and ƒ_(k) and with the visible spectrum. The visible spectrum is a region contained in a non-circular cone centered at the origin O and extending upwards (D≧0) about the D-axis.

By analogy with FIG. 2, each Q-region in Beƒ has 26 adjacent Q-regions, with their 26 Q-colors (except that there are fewer than 26 adjacent regions at the visible spectrum's boundary.) By analogy with (13), each Q-color (B_(i), e_(i), ƒ_(k)) and its 26 adjacent Q-colors (in the adjacent Q-regions) form the following set:

{(B,e,θ):Bε{B _(i−1) ,B _(i) ,B _(i+1)};

eε{e _(j−1) ,e _(i) ,e _(j+1)};

ƒε{ƒ_(j−1) ,ƒ _(j) ,ƒ _(j+1)}}  (16)

All the 27 Q-colors should lie in a single ellipsoid. This condition is satisfied (see (9)) if, for all colors S′ in the set (16):

δS=∥S′−S ₀ ∥/∥S ₀∥≦0.005  (17)

where S₀=(B_(i), e_(j), ƒ_(k)). The condition (17) should be satisfied for any Q-color S₀, and hence for the maximum δS value, which will be denoted δ_(Smax).

We will now express δ_(Smax) in terms of the quantization steps δ_(B), d_(e), d_(ƒ) (we use the symbols δB and δ_(B) interchangeably). Given a Q-color S=(B, e, ƒ) and an adjacent Q-color S′=(B+dB, e+de, ƒ+dƒ), the vector ΔS=S′−S can be represented as the sum of two vectors (FIG. 4):

ΔS=Δ _(eƒ) +ΔB  (18)

Here Δ_(eƒ) is obtained by changing e, ƒ while keeping B constant, and Δ_(B) is obtained by changing B while keeping e, ƒ constant:

Δ_(eƒ)=(B,e+de,ƒ+dƒ)−(B,e,ƒ)

Δ_(B)=(B+dB,e+de,ƒ+dƒ)−(B,e+de,ƒ+dƒ)

Since the angle between S and S′ is small, Δ_(eƒ) and Δ_(B) are approximately mutually orthogonal in DEF2 because Δ_(eƒ) is directed approximately along the spherical surface (B=constant) and Δ_(B) perpendicularly to the spherical surface, radially from the origin. Therefore:

∥ΔS| ²≈∥Δ_(eƒ)∥²+∥Δ_(B)∥²

Since ∥S∥=|B| and ∥Δ_(B)∥=|ΔB|, we can write (after dividing through by ∥S∥²):

δS≈(∥Δ_(eƒ)∥² /B ² +δB ²)^(1/2)  (19)

Based on their analysis of experimental data on human visual perception as described in Appendix B hereinbelow, the inventors have obtained the following approximate bound for ∥Δ_(eƒ)∥/B:

∥Δ_(eƒ) ∥/B≦3·max(de,dƒ)  (20)

This bound and (19) provide:

δ_(Smax)≈([3·max(d _(e) ,d _(ƒ))]² +δB ²)^(1/2)  (21)

Denoting

δ_(eƒ)=3·max(d _(e) ,d _(ƒ))  (22)

we can write:

δ_(Smax)≈(δ_(eƒ) ² +δB ²)^(1/2)  (23)

The condition (9) therefore leads to the following desirable condition:

(δ_(eƒ) ² +δB ²)^(1/2)≦0.005  (24)

In some embodiments, the B coordinate is quantized using a combination of linear and logarithmic coding, as described in U.S. patent application Ser. No. 11/564,730 filed on 29 Nov. 2006 by S. Bezryadin (also named as inventor in the present application) and incorporated herein by reference. The e and ƒ coordinates are quantized linearly. More particularly, the values (B, e, q) are coded as B_(Q), e_(Q), ƒ_(Q) as follows:

B _(S) =k ₁ ·B/B _(L) if B≦B _(L)  (25A-1)

B _(S) =k ₂·(1+ln(B/B _(L))) if B>B _(L)  (25A-2)

e _(S) =k _(e) ·e  (25B)

ƒ_(S) =k _(ƒ) ·ƒ  (25C)

B _(Q)=Round(B _(S))  (26A)

e _(Q)=Round(e _(S))  (26B)

ƒ_(Q)=Round(ƒ_(S))  (26C)

where k₁, k₂, k_(e), k_(ƒ) and B_(L) are suitable constants. The function Round(•) represents rounding to the nearest integer. The half-integers can be rounded according to any suitable convention. For example, in some embodiments the half-integers are rounded up if they are positive, down if they are negative:

Round(x)=└x+½┘ if x≧0  (27)

Round(x)=┌x−½┐ if x<0.

┌•┐ is the ceiling function, i.e. ┌x┐ is the smallest integer greater than or equal to x. Other rounding techniques are also possible.

In some embodiments, B_(S) is a continuous function of B at B=B_(L), and therefore (25A-1) and (25A-2) imply that k₁=k₂. We will denote this common value as k_(B). Thus:

B _(S) =k _(B) ·B/B _(L) if B≦B _(L),  (28A)

B _(S) =k _(B)·(1−ln(B/B _(L))) if B>B _(L)  (28B)

For small brightness values (such as B<B_(L)), a suitable measure of human perception of brightness distortion is the absolute error ΔB rather than the relative error δB. The absolute error ΔB is a better measure if the image is so dark as to be viewed without physical adaptation of the eye (e.g. iris constriction). The value B_(L) is therefore chosen suitably low in some cases, e.g. 1 cd/m². See the aforementioned U.S. patent application Ser. No. 11/564,730. The absolute error

ΔB=B _(L) /k _(B)  (29)

can be low if B_(L) is low and k_(B) is high.

In some embodiments, k_(e)=k_(ƒ), and we will denote this value as k_(eƒ):

The inverse transformation converts an integer triple (B_(Q), e_(Q), ƒ_(Q)) into a Q-color (B_(i), e_(j), ƒ_(k)) as follows:

B _(i) =B _(Q) ·B _(L) /k _(B) if B _(Q) ≦k _(B)  (30A-1)

B _(i) =B _(L) ·e ^(B) Q/k _(B)−1 if B _(Q) >k _(B)  (30A-2)

e _(j) =e _(Q) /k _(e)  (30C)

ƒ_(k)=ƒ_(Q) /k _(ƒ)  (30D)

We will now describe the set Q_(e) of possible values e_(j), the set Q_(k) of possible values ƒ_(k), and the set Q_(B) of possible values B_(i). The e coordinate can take any value from −1 to 1 inclusive. Therefore, e_(Q) can be any integer in the range of Round(−k_(e)) to Round(k_(e)). Assuming that k_(e) is integer, the set Q_(e) consists of the following values (see (30C)):

{−1,−(k _(e)−1)/k _(e),−(k _(e)−2)/k _(e), . . . ,0, . . . ,(k _(e)−1)/k _(e),1}  (31)

Therefore,

d _(e)=1/k _(e)  (32)

The set Q_(e) has (2k_(e)+1) possible values, which is the number of possible values of the coded coordinate e_(Q). Therefore, ┌ log₂(2k_(e)+1)┐ bits are needed if a separate field is used to represent e_(Q) in the quantized image. In some embodiments, −1 or 1 or both are omitted from Q_(e), and so ┌ log₂(2k_(e))┐ bits are sufficient. In this case, the value k_(e) can be chosen as a power of 2 in order not to waste the bits in the e_(Q) representation. Choosing k_(e) as a power of 2 may also improve the computation speed (see (25B) for example).

Similarly, the set Q_(ƒ) consists of the following values:

{−1,−(k _(ƒ)−1)/k _(ƒ),−(k _(ƒ)−2)/k _(ƒ), . . . ,0, . . . ,(k _(ƒ)−1)/k _(ƒ),1}  (33)

Therefore,

d _(ƒ)=1/k _(ƒ)  (34)

The set Q_(ƒ) has (2k_(ƒ)+1) possible values, which is the number of possible values of the coded coordinate ƒ_(Q). Therefore, ┌ log₂(2k_(ƒ)+1)┐ bits are needed if a separate field is used to represent ƒ_(Q). In some embodiments, −1 or 1 or both are omitted from Q_(ƒ), and so ┌ log₂(2k_(ƒ))┐ bits are sufficient. The value k_(ƒ) can be chosen then as a power of 2.

It follows from (22) that

δ_(eƒ)=3·max(1/k _(e),1/k _(ƒ))  (35)

The set Q_(B) of the B_(i) values consists of:

1. Linear range values:

{0,B _(L) /k _(B),2B _(L) /k _(B) , . . . ,B _(L)}  (36A)

2. Logarithmic range values:

{B _(L) ·e ^((k) ^(B) ^(+1/k) ^(B) ⁻¹ ,B _(L) ·e ^((k) ^(B) ⁺²)/k _(B)−1}  (36B)

where B_(Qmax) is the maximum value of B_(Q). This set has (B_(Qmax)+1) possible values, so ┌ log₂(B_(Qmax)+1)┐ bits are needed if a separate field is used to represent B_(Qmax).

In the logarithmic range, the relative brightness error δB is

$\begin{matrix} \begin{matrix} {{\delta \; B} = {{\left\lbrack {\left( {B_{L} \cdot e^{{{({n + 1})}/k_{B}} - 1}} \right) - \left( {B_{L} \cdot e^{{n/k_{B}} - 1}} \right)} \right\rbrack/B_{L}} \cdot e^{{n/k_{B}} - 1}}} \\ {= {e^{1/k_{B}} - 1}} \end{matrix} & (37) \end{matrix}$

In the linear range,

ΔB=B _(L) /k _(B)  (38)

For the logarithmic range, the bound δ_(Smax) can be obtained from (35) and (37). The logarithmic range is believed to be the most important for many images.

The dynamic range DR_(log) in the logarithmic range is

DR _(log) =e ^(B) _(Qmax) /k _(B)−1  (39)

(assuming the minimum brightness value of B_(L)). The total dynamic range DR is:

DR=k _(B) ·e ^(B) ^(Qmax) /k _(B)−1  (40)

Let us consider an example. Suppose the user wants to quantize each color into a 32-bit value, i.e. B_(Q), e_(Q), ƒ_(Q) must fit into 32 bits. If we want d_(e), d_(ƒ) to satisfy (12), then each of k_(e), k_(ƒ) has to be at least 1/0.003=334 (see (32), (34)). The number of bits needed to represent each of e_(Q), ƒ_(Q) is therefore ┌ log₂(2·334+1)┐=10. Hence, we can increase k_(e), k_(ƒ) to 512, and thus decrease d_(e) and d_(ƒ) (and hence δ_(Smax)), without increasing the data size. In this case (see (22)):

δ_(eƒ)=3/512≈0.006

If 10 bits are allocated for each of e_(Q), ƒ_(Q), then 12 bits are left for B_(Q). Therefore, ┌ log₂(B_(Qmax)+1)┐=12, and hence B_(Qmax)=4095.

Preferably, δB should not exceed 0.005. See (24) and the aforementioned U.S. patent application Ser. No. 11/564,730. From (37) we obtain:

e ^(1/k) ^(B) ⁻¹≦0.005

so

k _(B)≧201

In some embodiments, k_(B)=256. Then δB≈0.4, and δ_(Smax) is slightly above 0.007. In some embodiments, B_(L)=1 cd/m².

The total dynamic range is over 8·10⁸, and the dynamic range in the logarithmic range is over 3·10⁶ (see (39) and (40)).

The dynamic range of the visible spectrum is about 10¹⁵ (when measured as the ratio of the physical luminance of the sun's surface to the physical luminance of the moonless sky at night). See Mantiouk's article cited above. The dynamic range of the Beƒ coding can be increased while keeping the color distortion small by increasing the size of the quantized data (B_(Q), e_(Q), ƒ_(Q)) beyond 32 bits. The relative error δS can be reduced if the quantized data size is increased.

Some embodiments allow the user to designate a desired upper bound δ_(Smax) for the relative error δS. Larger δ_(Smax) values provide smaller size of quantized data. For example, if the initial image is noisy, e.g. obtained by a noisy camera, then specifying δ_(Smax)=0.005 may serve to preserve the noise, leading to a waste of storage for the quantized data. Therefore, a larger δ_(Smax) value may be appropriate. The invention is not limited to particular reasons for selecting a particular δ_(Smax) value, and values both above and below 0.005 can be used. Of note, values smaller than required for visual indistinguishability may be appropriate if additional errors can be introduced after quantization (e.g. during image editing or display).

When the user specifies δ_(Smax), the computer system quantizes the image so as to meet the δ_(Smax) bound at least approximately. For that purpose, the computer system automatically selects the number of bits for each of B_(Q), e_(Q), ƒ_(Q) and performs quantization.

One quantization embodiment is shown in FIG. 5. At step 510 (FIG. 5), the computer system obtains the image data that need to be quantized. The image data may be in Beƒ, or may be converted to Beƒ by the computer system. The computer system also receives the δ_(Smax) parameter from the user or some other source (e.g. from a computer program).

At step 510, the computer system determines quantization parameters (e.g. k_(B), k_(e), etc.) for each of B, e, ƒ as described in more detail below. At step 520, the computer system performs quantization and outputs the quantized data B_(Q), e_(Q), ƒ_(Q). The quantized data can be stored in a file, together with the δ_(Smax) parameter if desired, as illustrated in FIG. 6.

The quantization parameters can be obtained using the relationship (23) and a predefined ratio r=δ_(B):δ_(eƒ). The r value can be defined by the user, the system designer, or by some other entity. If δ_(B) is reduced (i.e. if r is reduced), the brightness distortion will be reduced at the expense of the chromatic distortion, and vice versa. At step 510, the computer computes δ_(B) and δ_(eƒ):

δ_(eƒ)=δ_(Smax)/sqrt(r ²+1)

δ_(B)=δ_(Smax) ·r/sqrt(r ²+1)

(“sqrt” denotes square root).

The parameters k_(e), k_(ƒ) k_(B) can be obtained, for example, as follows. If k_(e)=k_(ƒ), then (35) provides that

k _(eƒ)=3/δ_(eƒ)  (41)

Due to (37), we can set

k _(B)=1/ln(1+δ_(B))  (42)

The k_(B) computation can be simplified by setting:

k _(B)=1/δ_(B)  (43)

because ln(1+δ_(B))≈1/δ_(B) for small δ_(B).

Example: suppose r=1. Then

δ_(eƒ)=δ_(B)=δ/sqrt(2)≈_(Smax)/1.4;

k _(B)=1.4/δ_(Smax);

k _(eƒ)=3·sqrt(2)/δ_(Smax)≈4.2/δ_(Smax).

If δ_(Smax)=0.005, then k_(B)=283, and k_(eƒ)=849. The value k_(eƒ) can be rounded up to 1024 (10 bits for each of e and ƒ). The invention is not limited to particular computations however.

FIG. 7 shows decoding of the quantized data to generate the quantized image (i.e. the Q-colors) such as may be performed to display the image encoded as in FIG. 6. At step 710, a computer system obtains the coded data B_(Q), e_(Q), ƒ_(Q) and quantization parameters such as k_(eƒ), k_(B) for example. The quantization parameters can be provided to the computer system with the coded data, or can be computed by the computer system from other parameters such as, for example, δ_(Smax) and r. At step 720, the computer system computes the image colors (B_(i), e_(j), ƒ_(k)).

FIG. 8 illustrates a computer system 810 suitable for either the quantization operation of FIG. 5 or the decoding of FIG. 7. The computer system may include one or more computer processors 812 which execute computer instructions, and may also include computer storage 814 (including possibly magnetic, optical, semiconductor, and/or other types of storage, known or to be invented). If data display is desired, the system may include one or more display devices 816 (e.g. monitors, printers, or some other type, known or to be invented). If a network connection is desired, network interface 817 can be provided. Image data and computer programs manipulating the data (such as programs that perform the methods described herein) can be stored in storage 814 and/or read over a network.

The invention is not limited to the embodiments described above. For example, at step 510, δ_(eƒ) could be estimated as 4·max(d_(e), d_(ƒ)) for (23), or using some other multiplier k in

δ_(eƒ) =k·max(d _(e) ,d _(ƒ)).

Also, δ_(Smax) could be estimated as

δ_(Smax)=sqrt(c ₁·[max(d _(e) ,d _(ƒ))]² +c ₂ ·δB ²)  (44)

where c₁, c₂ are any positive constants. Thus, in some embodiments, the computer system receives values δ_(Smax) and r and at step 510.2 computes the values d=max(d_(e), d_(ƒ)) and δB to satisfy (44). Then the computer system sets:

k _(eƒ)=1/max(d _(e) ,d _(ƒ))

and computes k_(B) as in (42) or (43). Other expressions for δ_(Smax) are possible, such that the chromatic steps (e.g. d_(e), d_(ƒ)) and the relative brightness step δB could be increasing functions of δ_(Smax) which are strictly increasing for at least some values of δ_(Smax). One example is:

δ_(Smax) =c ₁·max(d _(e) ,d _(ƒ))+c ₂ ·δB

Also, d_(e) and d_(ƒ) do not necessarily coincide. For example, any of the following expressions can be used:

δ_(Smax) =c _(e) ·d _(e) +c _(ƒ) ·d _(ƒ) +c ₂ ·δB  (45)

δ_(Smax)=sqrt(c _(e) ·d _(e) ² +c _(ƒ) ·d _(ƒ) ² +c ₂ ·δB ²)  (46)

where c_(e), c_(ƒ) are positive constants. Additional information can be provided instead of r to determine d_(e), d_(ƒ) and δB from δ_(Smax). An example of such information is the double ratio d_(e):d_(ƒ):δB. Then k_(e), k_(ƒ) can be determined at step 510.2 as in (32), (34), and kg can be determined as in (42) or (43). The double ratio can be provided with the quantized data (as in FIG. 6) together with δ_(Smax).

The invention is not limited to particular theories such as the particular study of ellipsoids and error estimates explained above or in the appendices below. These studies are incomplete because they do not cover the ellipsoids of all the possible colors and involve other simplifications such as approximate computations, simplified models of human visual perception, and possibly others. The invention is directed to particular quantization techniques as recited in the claims, and not to any theories leading to these techniques.

In some embodiments, different computations can be combined in a single computation, omitting the computation of intermediate values (such as the values B_(S), e_(S), ƒ_(S)). Also, multiplication by k_(B) can be omitted, and the values B_(S) or B_(Q) can be computed simply by taking the most significant bits in the fixed-point representation of these values. Of note, the term “integer format” as used herein includes fixed-point format. The invention is not limited to integer format. Color coordinate systems other than Beƒ can be used.

Some embodiments include a computer-implemented method for quantizing a first digital image, the method comprising: obtaining a first parameter representing a desired upper bound δ_(Smax) for relative quantization steps to be used in quantizing any color in at least a first range of colors. The first range of colors may be, for example, the set of all visible colors with B>B_(L), where B_(L), is a predefined value, e.g. 1 cd/m². Alternatively, the first range may be the entire visible range. Other ranges are also possible. A relative quantization step for a color is defined as follows. If S′, S″ are adjacent Q-colors, then the relative quantization steps δS′, δS″ are:

δS′=∥S′−S″∥/∥S′∥

δS″=∥S′−S″∥/∥S″∥

where for any color S, ∥S∥ is the square root of the sum of squares of tristimulus values of the color S in a predefined 70%-orthonormal linear color coordinate system (“linear CCS”), for example, in DEF2.

The definition of a relative quantization step involves the concept of “adjacent” Q-colors. Q-colors S′, S″ are called adjacent if one or both of the following conditions (A), (B) hold true:

-   -   (A) S′, S″ correspond to adjacent Q-regions, i.e. the Q-regions         that map into S′ and S″ are adjacent to each other;     -   (B) Suppose that quantization involves separately quantizing         each color coordinate in some CCS (e.g. in Beƒ). Let us denote         the CCS coordinates as α, β, γ (for example, α=B, β=e, γ=ƒ). For         the Q-colors, denote the set of all possible α values as Q_(α);         the set of all possible β values as Q_(β); and the set of all         possible γ values as Q_(γ). Then S′=(α′, β′, γ′) and S″=(α″, β″,         γ″) are called adjacent if each of the following conditions (i),         (ii), (iii) is true:     -   (i) α′ and α″ coincide or are adjacent in Q_(α);     -   (ii) β′ and β″ coincide or are adjacent in Q_(β); and     -   (iii) γ′ and γ″ coincide or are adjacent in Q_(γ).         For example, the colors (B_(i), e_(j), ƒ_(k)) and (B_(i+1),         e_(j−1), ƒ_(k)) are adjacent.

The method further comprises generating a quantized digital image using the first parameter. For example, generation of the quantized digital image may involve defining the sets Q_(α), Q_(β), Q_(γ) using the value δ_(Smax). See e.g. (31), (33), (36A), (36B). The sets Q_(α), Q_(β), Q_(γ) define the set of colors available for quantization and hence define the quantization steps in each coordinate. Alternatively, the sets Q_(α), Q_(β), Q_(γ) may be defined incompletely. For example, the value B_(Qmax) may be undefined.

In some embodiments, the first digital image is represented by data which represent each color of the first digital image using a non-linear color coordinate system (“non-linear CCS”). One suitable example of the non-linear CCS is Beƒ. The non-linear CCS includes a brightness coordinate (e.g. B) representing the square root of the sum of squares of the tristimulus values of the linear CCS. For example, the brightness coordinate can be B=sqrt(D²+E²+F²). Alternatively, the brightness coordinate can be −B, or 2B, or some other representation of sqrt(D²+E²+F²). The non-linear CCS also comprises one or more chromatic coordinates (e.g. e, ƒ) whose values are unchanged if the tristimulus values are multiplied by a positive number (for example, the e, ƒ coordinates of a color S with tristimulus values (D, E, F) are the same as of a color kS with tristimulus values (kD, kE, kF) where k is a positive number).

In some embodiments, generating the quantized digital image comprises quantizing the brightness coordinate using the first parameter and also quantizing said one or more chromatic coordinates using the first parameter.

In some embodiments, the computer system uses the first parameter to generate (i) a brightness parameter (e.g. δB) specifying a desired maximum bound for relative quantization steps δB for the brightness coordinate in at least a range of values of the brightness coordinate (e.g. at least in the logarithmic range), and (ii) one or more chromatic parameters (e.g. δ_(eƒ)) specifying one or more desired maximum bounds for quantization steps d for the one or more chromatic coordinates in at least one or more ranges of values of the chromatic coordinates (e.g. in the entire ranges −1≦e≦1, −1≦f≦1). The brightness coordinate is then quantized using the brightness parameter, and said one or more chromatic coordinates are quantized using the one or more chromatic parameters.

In some embodiments, the brightness parameter and the one or more chromatic parameters are determined from the first parameter to satisfy the equation:

δ_(Smax) ² =c ₁ ·d ² +c ₂ ∫δB ²

where d is a quantization step used in each of the one or more chromatic coordinates, and c₁, c₂ are predefined constants independent of the first parameter. For example, in (21) and (23), c₁=9 and c₂=1.

In some embodiments, generating the quantized digital image comprises quantizing the brightness coordinate, wherein in at least a range of values of the brightness coordinate (e.g. the range B>B_(L)), the quantizing of the brightness coordinate comprises logarithmic quantizing in which a quantized brightness coordinate (e.g. B_(S) or B_(Q)) is a predefined first rounded or unrounded linear function of a logarithm to a predefined base (e.g. the natural base e; changing the base corresponds to multiplication by a positive constant) of a predefined second rounded or unrounded linear function of the brightness (e.g. the function B/B_(L)), the first and/or second linear functions and/or the base being dependent on the first parameter. For example, in the case (28B) the first linear function can be

ƒ₁(x)=k _(B)·(1+x)

or

ƒ₁(x)=Round(k _(B)·(1+x))

The second linear function can be

ƒ₂(B)=B/B _(L)

or

ƒ₂(B)=Round(B/B _(L))

In this case, the value k_(B), and hence the function ƒ₁, are dependent on the first parameter (on δ_(Smax))·ƒ₂ is independent of the first parameter.

Some embodiments include computer systems programmed to perform the quantization methods according to embodiments of the present invention. Some embodiments include computer-readable manufactures (e.g. computer disks, tapes, and other types of memories) comprising computer-readable programs for performing the quantization methods of embodiments of the present invention. The present invention also covers network transmission methods for transmitting such computer programs (e.g. to upload or download the programs into a computer system).

Other embodiments and variations are within the scope of the invention, as defined by the appended claims.

APPENDIX A Orthonormal Color Coordinate Systems

Let d(λ), ē(λ), f(λ) be color matching functions of some linear color coordinate system (CCS). The CCS is called orthonormal if its color matching functions d(λ), ē(λ), f(λ) form an orthonormal system in the function space L₂ on [0,∞) (or on any interval containing the visible range of the λ values if the color matching functions are zero outside of this range), that is:

∫₀ ^(∞) d (λ)ē(λ)dλ=∫ ₀ ^(∞) d (λ) f (λ)dλ=∫ ₀ ^(∞) ē(λ) f (λ)dλ=0  (A1)

∫₀ ^(∞) [ d (λ)]² dλ=∫ ₀ ^(∞) [ē(λ)]² dλ=∫ ₀ ^(∞)[ƒ(λ)]² dλ=K

where K is a positive constant defined by the measurement units for the wavelength λ, and the radiance P(λ). The units can be chosen so that K=1.

The integrals in (A1) can be replaced with sums if the color matching functions (CMF's) are defined at discrete λ values, i.e.:

$\begin{matrix} {{{\sum\limits_{\lambda}{{\overset{\_}{d}(\lambda)}{\overset{\_}{e}(\lambda)}}} = {{\sum\limits_{\lambda}{{\overset{\_}{d}(\lambda)}{\overset{\_}{f}(\lambda)}}} = {{\sum\limits_{\lambda}{{\overset{\_}{e}(\lambda)}{\overset{\_}{f}(\lambda)}}} = 0}}}{{\sum\limits_{\lambda}\left\lbrack {\overset{\_}{d}(\lambda)} \right\rbrack^{2}} = {{\sum\limits_{\lambda}\left\lbrack {\overset{\_}{e}(\lambda)} \right\rbrack^{2}} = {{\sum\limits_{\lambda}\left\lbrack {\overset{\_}{f}(\lambda)} \right\rbrack^{2}} = K}}}} & ({A2}) \end{matrix}$

where the sums are taken over a discrete set of the λ values. The constant K can be different than in (A1). Color matching functions will be called orthonormal herein if the satisfy the equations (A1) or (A2).

Color coordinate systems DEF2, BEF, and Beƒ which can be defined, for example, as follows. DEF2 is a linear CCS defined as a linear transformation of the 1931 CIE XYZ color coordinate system for the 2° field. DEF2 coordinates D, E, F are:

$\begin{matrix} {\begin{bmatrix} D \\ E \\ F \end{bmatrix} = {A_{{XYZ}\text{-}{DEF}}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}} & ({A3}) \\ {{where}\text{:}} & \; \\ {A_{{XYZ}\text{-}{DEF}} = \begin{bmatrix} 0.205306 & 0.712507 & 0.467031 \\ 1.853667 & {- 1.279659} & {- 0.442859} \\ {- 0.365451} & 1.011998 & {- 0.610425} \end{bmatrix}} & ({A4}) \end{matrix}$

It has been found that for many computations, adequate results are achieved if the elements of matrix Δ_(xyz-DEF) are rounded to four digits or fewer after the decimal point, i.e. the matrix elements can be computed with an error Err≦0.00005. Larger errors can also be tolerated in some embodiments.

When D>0 and E=F=0, the color is white or a shade of gray. Such colors coincide, up to a constant multiple, with the CIE D₆₅ white color standard.

If a color is produced by monochromatic radiation with λ=700 nm (this is a red color), then F=0 and E>0.

If S₁ and S₂ are two colors with DEF2 coordinates (D1, E1, F1) and (D2, E2, F2), a dot product of these colors can be defined as follows:

<S ₁ ,S ₂ >=D1*D2+E1*E2+F1*F2  (A5)

Thus, the DEF2 coordinate system can be thought of as a Cartesian coordinate system having mutually orthogonal axes D, E, F (FIG. 1), with the same measurement unit for each of these axes.

The dot product (A5) does not depend on the CCS as long as the CCS is orthonormal in the sense of equations (A1) or (A2) and its CMF's are linear combinations of d(λ), ē(λ), f(λ). More particularly, let T₁, T₂, T₃ be tristimulus values in a color coordinate system whose CMF's t ₁, t ₂, t ₃ belong to a linear span

Span ( d(λ), ē(λ), f(λ)) and satisfy the conditions (A1) or (A2). For the case of equations (A1), this means that:

∫₀ ^(∞) t ₁(λ) t ₂(λ)dλ=∫ ₀ ^(∞) t ₁(λ) t ₃(λ)dλ=∫ ₀ ^(∞) t ₂(λ) t ₃(λ)dλ=0  (A6)

∫₀ ^(∞) [ t ₁(λ)]² dλ=∫ ₀ ^(∞) [ t ₂(λ)]² dλ=∫ ₀ ^(∞) [ t ₃(λ)]² dλ=K

with the same constant K as in (A1). The discrete case (A2) is similar. Suppose the colors S₁, S₂ have the T₁T₂T₃ coordinates (T_(1.1), T_(2.1), T_(3.1)) and (T_(1.2), T_(2.2), T_(3.2)) respectively. Then the dot product (A5) is the same as

<S ₁ ,S ₂ >=T _(1.1) T _(1.2) +T _(2.1) T _(2.2) +T _(3.1) T _(3.2.)

The brightness B of a color S can be represented as the length (the norm) of the vector S:

B=∥S∥=√{square root over (<S,S>)}=√{square root over (D ² +E ² +F ²)}  (A7)

The BEF color coordinate system defines each color by the coordinates (B, E, F). The Beƒ color coordinate system is defined as follows:

B=√{square root over (D ² +E ² +F ²)}  (A8)

e=E/B

ƒ=F/B

If B=0 (absolute black color), then e and ƒ can be left undefined or can be defined in any way, e.g. as zeroes.

D is never negative in the visible spectrum, so the D, E, F values can be determined from the B, e, ƒ values as follows:

E=e×B  (A9)

F=f×B

D=√{square root over (B ²−(e*B)²−(f*B)²)}{square root over (B ²−(e*B)²−(f*B)²)}=B√{square root over (1−e ² −f ²)}

The invention is not limited to the order of the coordinates. The invention is not limited to DEF2, XYZ, or any other color coordinate system as the initial coordinate system. In some embodiments, the orthonormality conditions (A1) or (A2) are replaced with quasi-orthonormality conditions, i.e. the equations (A1) or (A2) hold only approximately. More particularly, CMF's t ₁(λ), t ₂(λ), t ₃(λ) will be called herein quasi-orthonormal with an error at most s if they satisfy the following conditions:

1. each of ∫₀ ^(∞) t ₁(λ) t ₂(λ)dλ, ∫₀ ^(∞) t ₁(λ) t ₃(λ)dλ, ∫₀ ^(∞) t ₂(λ) t ₃(λ)dλ is in the interval [−ε,ε], and 2. each of ∫₀ ^(∞[ t) ₁(λ)]²dλ, ∫₀ ^(∞)[ t ₂(λ)]²dλ, ∫₀ ^(∞)[t₃(λ)]²dλ is in the interval [K−ε,K+ε] for positive constants K and ε. In some embodiments, ε is 0.3K, or 0.1K, or some other value at most 0.3K, or some other value. Alternatively, the CMF's will be called quasi-orthonormal with an error at most ε if they satisfy the following conditions: 1. each of

${\sum\limits_{\lambda}{{{\overset{\_}{t}}_{1}(\lambda)}{{\overset{\_}{t}}_{2}(\lambda)}}},{\sum\limits_{\lambda}{{{\overset{\_}{t}}_{1}(\lambda)}{{\overset{\_}{t}}_{3}(\lambda)}}},{\sum\limits_{\lambda}{{{\overset{\_}{t}}_{2}(\lambda)}{{\overset{\_}{t}}_{3}(\lambda)}}}$

is in the interval [−ε,ε], and 2. each of

${\sum\limits_{\lambda}\left\lbrack {{\overset{\_}{t}}_{1}(\lambda)} \right\rbrack^{2}},{\sum\limits_{\lambda}\left\lbrack {{\overset{\_}{t}}_{2}(\lambda)} \right\rbrack^{2}},{\sum\limits_{\lambda}\left\lbrack {{\overset{\_}{t}}_{3}(\lambda)} \right\rbrack^{2}}$

is in the interval [K−ε,K+δ] for positive constants K and s. In some embodiments, s is 0.3K, or 0.1K, or some other value at most 0.3K, or some other value. Orthonormal functions are quasi-orthonormal, but the reverse is not always true. If δ=0.1K, the functions and the corresponding CCS will be called 90%-orthonormal. More generally, the functions and the CCS will be called n %-orthonormal if s is (100−n) % of K. For example, for 70%-orthonormality, ε=0.3K. Some embodiments of the present invention use 90%-orthonormal CCS's or 100%-orthonormal CCS's.

APPENDIX B Contribution of Chromatic Coordinates to Relative Error δS

The distortion measure δS as in (5) combines information on luminance and chrominance, and it may be desirable to controllably distribute this total distortion between the luminance and chrominance coordinates. The inventors studied the impact of the chrominance distortion on the total distortion δS in color coordinate systems Beƒ, xyY, and CIELUV (also known as L*u*v*). The system xyY is based on the 1931 CIE XYZ CCS for a 2° field, i.e.

x=X/(X+Y+Z)  (B1)

y=Y/(X+Y+Z)

The L*u*v* CCS is defined based on the XYZ CCS as follows:

L*=116(Y/Y _(n))^(1/3)−16 if Y/Y _(n)>(6/29)³  (B2)

L*=(29/3)³ Y/Y _(n) if Y/Y _(n)≦(6/29)³

u*=13L*·(u′−u′ _(n))

v*=13L*·(v′−v′ _(n))

where u′, v′ are as in (3), Y_(n) is the Y coordinate of a predefined white color, and (u′_(n), v′_(n)) are the (u′, v′) values defined by (3) for that predefined color.

More particularly, the inventors studied the relative change OS given a predefined quantization step 0.001 in a chromatic coordinate in the three CCS's. The results of this study are summarized in Table 1 below. The study covered the monochromatic colors whose xyY coordinates x and y are provided in the standard for XYZ CIE 1931. These monochromatic colors are those with wavelengths λ=360 nm to 830 nm at 1-nm intervals. The Y coordinate was set to 1. The inventors believed that a change in the y coordinate was more significant (likely to produce a larger δS value) than a change in x, so only the y changes were investigated. For each color S with xyY coordinates (x, y, Y), the inventors set S′=(x, y+0.001, 1). Then the xyY coordinates of S and S′ were converted to DEF2, and δS was computed as in (5). The largest δS values are shown in the xyY line of Table 1 below. The inventors also computed δS for S being the stimulus of the blue phosphor of the standard sRGB monitor (this stimulus provides the largest δS value for the sRGB monitor's gamut). The result is given in Table 1.

For the L*u*v* and Beƒ systems, the inventors used the same set of colors as for xyY, i.e. the monochromatic colors from Table I(3.3.1) of “Color Science” with Y=1 and the blue phosphor sRGB stimulus. For L*u*v*, the chromatic coordinate v* was believed to be more significant than u*. For each color S, the inventors calculated its coordinates (L*, u*, v*), set S′=(L*, u*, v*+0.001), and calculated δS in DEF2 as in (5). The results are presented in the L*u*v* row in Table 1.

For Beƒ, S′ was set to (B, e+0.001, ƒ+0.001), and δS was calculated. The results are presented in the Beƒ row in Table 1.

TABLE 1 B_(sRGB) 700 nm 440 nm 405 nm xyY 0.018 0.005 0.086 0.174 L*u*v* 0.009 0.003 0.030 0.061 Bef 0.002 0.003 0.002 0.002

The Beƒ system provided the lowest δS value for all the colors S studied and not only for the colors in Table 1. Of note, the condition (9) is always satisfied for Beƒ, but not always for xyY and L*u*v*.

On the other hand, in the visible gamut, each of the Beƒ chromaticity coordinates e, ƒ can change over a longer range, from about −1 to about 1, than each of x, y, u*, and v*. The range for each of e, ƒ can be about three times larger than for u* and v* and about twice larger than for x and y. Therefore, for a given quantization step, each of e, ƒ needs one or two more bits to represent the quantized values than any one of x, y, u*, v*. However, even if the quantization step is tripled to 0.003 for the e and ƒ coordinates to allow the same number of bits for the quantized values, the Beƒ CCS still favorably compares with xyY and L*u*v* in terms of color distortion. Indeed, if the quantization step is tripled (i.e. set to 0.003) in Beƒ but not in xyY or L*u*v*, the Beƒ values in Table 1 will approximately triple (assuming that 6S linearly depends on the quantization step when the quantization step is small; the linear dependence is a reasonable assumption if δS is differentiable with respect to the quantization step at the 0 value of the quantization step). The tripled δS values for Beƒ will exceed the 6S values for xyY and L*u*v* for some colors, e.g. for 2=700 nm, but the maximum 6S for Beƒ (i.e. 0.009) will still be below the maximum 6S for each of xyY and L*u*v*. Further, the tripled δS values for Beƒ never exceed the 0.01 bound of (8). The xyY and L*u*v* values exceed this limit for the 440 and 405 nm wavelengths, and the xyY value exceeds this limit for the B_(sRGB) stimulus. Further, the tripled quantization step d=0.003 still satisfies the upper bound of (11).

With respect to (21), just as it is reasonable to assume that for small d, the value δS is approximately linearly dependent on d (up to the terms of second or higher order in d), it is also reasonable to assume that the value ∥Δ_(eƒ)∥/B is approximately linearly dependent on de, df and does not exceed a constant times the maximum of de, df:

∥Δ_(eƒ) ∥/B≦c·max(de,dƒ)  (B3)

From Table 1, c=3, and so (20) follows. 

1. A computer-readable manufacture comprising computer-readable encoding of digital data representing an image at a plurality of image portions, wherein the image comprises a plurality of image portions, wherein an image at each said image portion has color coordinates S₁, S₂, S₃ in a first color coordinate system (CCS), wherein S ₁=√{square root over (T ₁ ² +T ₂ ² +T ₃ ²)} S ₂ =T ₂ /S ₁ S ₃ =T ₃ /S ₁ T₁, T₂, T₃ are color coordinates in a predefined 70%-orthonormal linear CCS; wherein at least for each said image portion whose color coordinate S₁ is in a predefined range, the computer-readable encoding comprises color coordinates s₁, s₂, s₃ such that: s₁=kg·(ln(αS₁)+β) rounded to an integer, where α and β are predefined constants, s₂=k_(eƒ)·S₂/S₁ rounded to an integer, s₃=k_(eƒ)·S₃/S₁ rounded to an integer, wherein k_(eƒ) is about 3·k₃, or k_(eƒ) is equal to the smallest power of 2 which is greater than or equal to about 3·k_(B).
 2. The computer-readable manufacture of claim 1 wherein the 70%-orthonormal linear CCS is 90%-orthonormal.
 3. The computer-readable manufacture of claim 1 wherein the 70%-orthonormal linear CCS is 100%-orthonormal.
 4. A computer system comprising the computer-readable manufacture of claim
 1. 5. A computer system comprising the computer-readable manufacture of claim
 2. 6. A computer system comprising the computer-readable manufacture of claim
 3. 